个人终端 - 多平台消息通知

个人终端,这是我临近年末接收的一个项目,以前有个雏形,我看了看以前的整体架构,非常的混乱,遂直接重写了一遍,部分地方借鉴先人的思路,但现在看来貌似借鉴错了..

先来大体讲一下这个个人终端的用出吧,暂时个人终端就一个功能,给安装了个人终端的用户弹窗提醒,对就着一个功能,支持PC端和Android端,目前Android端我带着两个实习生在做,因为不懂这方面技术,所以我只跟进Android端的进度,PC端是C#写的已经上线了。

为了保证信息的安全性,所以在其中用到了DES对称加密。根据这个思路大体来讲一下。

当有新消息要发送时,大体经过这几个阶段

1、将需要发送的数据,接收人等信息发送至Rest接口

2、系统对将要发送的消息进行加密,采用随机密钥DES加密,并将密文存入数据库

3、将刚加密的密文ID,密钥等信息通过Socket发送给客户端

4、客户端拿到ID,访问相应的Web路径,并通过密钥在本地解密密文,展现在webbrowser中。

第4个阶段,后来有改动,原先我不想让明文的消息走网络,所以设计的是在本地解密,就是C#中检测webbrowser的加载状态,当检测到加载完毕以后,获取其中id为xxx的值,这个值就是密文,然后程序在本地用socket接收到的key进行解密,然后在显示在webbroser中,后来为了一致性,领导说不用这么费事,所以后来改成了在服务端解密..成了我自己把自己摆了一道…

pc端是借鉴前人的思路,监听每个客户端本地10001端口,服务端仅是往个个IP上发一个socket就行了..个人还是感觉做成客户端连接服务端比较好,有时间的时候看一看,如何改造,成本如何。

android端的消息推送是用androidpn做的,没有自己实现socket连接通讯。